<?php
namespace app\admin\controller;
use think\Controller;
use \GatewayWorker\Lib\Gateway;

class GatewayBind extends Controller{

	public function bind(){
		$client_id = input('client_id');
		// 设置GatewayWorker服务的Register服务ip和端口，请根据实际情况改成实际值
		Gateway::$registerAddress = '127.0.0.1:1236';

		// 假设用户已经登录，用户uid和群组id在session中
		$uid      = "admin_user";
		$group_id = "admin_group";
		// client_id与uid绑定
		Gateway::bindUid($client_id, $uid);
		// 加入某个群组（可调用多次加入多个群组）
		$res = Gateway::joinGroup($client_id, $group_id);
		if($res){
			return json_encode(array(
				'code' => 1,
				'info' => '绑定成功'
			));
		}else{
			return json_encode(array(
				'code' => 0,
				'info' => '绑定失败'
			));
		}
	}
	
	//发生消息给所有人
	public function sendToAll($message=''){
		$message = json_encode(array(
            'type'      => 'string',
            'data' =>  'HELLO XIAOHU',
        ));
		// 设置GatewayWorker服务的Register服务ip和端口，请根据实际情况改成实际值
		Gateway::$registerAddress = '127.0.0.1:1236';
		// 向网站页面发送数据
		Gateway::sendToAll($message);
		// 向任意群组的网站页面发送数据
		// Gateway::sendToGroup($group, $message);
	}
	//发生消息给群组
	public function sendToGroup($group,$message=''){
		$message = json_encode(array(
            'type'      => 'string',
            'data' =>  'HELLO XIAOHU',
        ));
		// 设置GatewayWorker服务的Register服务ip和端口，请根据实际情况改成实际值
		Gateway::$registerAddress = '127.0.0.1:1236';

		// 向任意uid的网站页面发送数据
		// Gateway::sendToAll($message);
		// 向任意群组的网站页面发送数据
		Gateway::sendToGroup($group, $message);
	}
	//发生消息给任意uid
	public function sendToUid($uid,$message=''){
		$message = json_encode(array(
            'type'      => 'string',
            'data' =>  'HELLO XIAOHU',
        ));
		// 设置GatewayWorker服务的Register服务ip和端口，请根据实际情况改成实际值
		Gateway::$registerAddress = '127.0.0.1:1236';
		// 向任意uid的网站页面发送数据
		Gateway::sendToUid($uid,$message);
	}
}

